// #include "Product.h"
#include "Builder.h"

#include <iostream>
using namespace std;

Builder::Builder()
{
    cout << "Builder()" << endl;
}

Builder::~Builder()
{
    cout << "~Builder()" << endl;
}

ConcreteBuilder::ConcreteBuilder()
{
    cout << "ConcreteBuilder" << endl;
}

ConcreteBuilder::~ConcreteBuilder()
{
    cout << "~ConcreteBuilder" << endl;
}

void ConcreteBuilder::BuilderPartA(const string& buildPara)
{
    cout << "Step1: Build Part A = " << buildPara << endl;
}

void ConcreteBuilder::BuilderPartB(const string& buildPara)
{
    cout << "Step2: Build Part B = " << buildPara << endl;
}

void ConcreteBuilder::BuilderPartC(const string& buildPara)
{
    cout << "Step3: Build Part C = " << buildPara << endl;
}

// Product* ConcreteBuilder::GetProduct()
// {
//     BuilderPartA("pre-defined A");
//     BuilderPartB("pre-defined B");
//     BuilderPartC("pre-defined C");
//     return new Product();
// }